package fit.decorator;

import fit.Fixture;
import fit.Parse;
import fit.decorator.exceptions.InvalidInputException;

public class Loop extends FixtureDecorator {
	public static final String COUNT = "count";
	private int counter;

	@Override
	protected void run(Fixture fixture, Parse table) {
		for (int i = 0; i < counter; i++) {
			super.run(fixture, table);
		}
	}

	@Override
	protected void setupDecorator(String[] arguments)
			throws InvalidInputException {
		if (arguments.length != 1) {
			throw new InvalidInputException("Loop count must be specified");
		}
		counter = Integer.parseInt(arguments[0]);
		summary.put(COUNT, new Long(counter));
	}

	@Override
	protected void updateColumnsBasedOnResults(Parse table) {
		// Nothing to do
	}
}
